package com.iterator.util;

import java.util.regex.Pattern;

//String类型参数的校验
public class CheckUtil {

    //判断字符串是不是数字
    public static boolean isNumber(String str){
        if (isNull(str)) return false;
        Pattern pattern = Pattern.compile("^(-|\\+)?\\d+(\\.\\d+)?$");
        return pattern.matcher(str).matches();
    }

    //用try和 parseXXX()的方法验证字符串
    public static boolean isInteger(String str) {
        if (isNull(str)) return false;
        try {
            Integer.parseInt(str);
            return true;
        } catch (Exception e) {
            return false;
        }
    }

    //实际上只能判断是不是整数
    public static boolean isInteger2(String str) {
        if (isNull(str)) return false;
        Pattern pattern = Pattern.compile("^[-+]?[\\d]*$");
        return pattern.matcher(str).matches();
    }

    //判断是否是长整型
    public static boolean isLong(String str) {
        if (isNull(str)) return false;
        try {
            Long.parseLong(str);
            return true;
        } catch (Exception e) {
            return false;
        }
    }

    //判断浮点数（double和float）
    public static boolean isDouble(String str) {
        if (isNull(str)) return false;
        Pattern pattern = Pattern.compile("[+-]?[0-9]+\\.([0-9]+)"); // 之前这里正则表达式错误，现更正
        return pattern.matcher(str).matches();
    }

    //判断是否是国内的手机号
    public static boolean isPhone(String str) {
        if (isNull(str)) return false;
        Pattern pattern = Pattern.compile("[+-]?[0-9]+\\.([0-9]+)"); // 之前这里正则表达式错误，现更正
        return pattern.matcher(str).matches();
    }

    //判断字符串是不是为空
    private static boolean isNull(String str) {
        if (str == null || str.length() == 0) {
            return true;
        }
        return false;
    }
}
